This invention relates to programmable logic devices, and more particularly, to wireless programming of programmable logic devices.
Programmable logic devices are a type of integrated circuit that can be programmed by a user to implement a desired custom logic function. In a typical scenario, a logic designer uses computer-aided design (CAD) tools to design a custom logic circuit. These tools use information on the hardware capabilities of a given programmable logic device to help the designer implement the custom logic circuit using the resources available on that given programmable logic device. When the design process is complete, the CAD tools generate configuration data files. The configuration data is loaded into the programmable logic devices to configure them to perform their desired custom logic functions.
Programmable logic devices can be programmed using special equipment called a programmable logic device programmer. In a typical scenario, large numbers of programmable logic devices are programmed with configuration data in an assembly-line fashion. The programmed devices are then installed in a system. Programmable logic devices can be programmed in this way at the original device manufacturer, electronics distributor, or at companies that are manufacturing products that use the programmable logic devices as parts.
Programmable logic devices can also be programmed after they have been installed in a system. For example, a configuration device that is located on the same board as a programmable logic device may be used to load configuration data into the programmable logic device when the board is powered up.
Both assembly-line programming and in-system programming rely on physical contact to form an electrical pathway between the source of configuration data and the programmable logic device. The need for physical contact during assembly-line programming can be burdensome, because it requires the transfer of programmable logic devices between hermetically sealed packages and the device programmer. Often thousands of parts must be handled in this way, which is time-consuming and cumbersome. In-system programming techniques are often not practical. For example, it is generally not possible to reprogram a programmable logic device after it has been installed in product such as a toy, industrial equipment, or a piece of consumer electronics. Physical programming methods also limit the recourses available to end manufacturers if the programmable logic device is accidentally programmed with an incorrect configuration. Often, the manufacturer is faced with the choice of reworking affected material or absorbing the loss.
It would therefore be desirable to provide improved programming processes for programmable logic device integrated circuits.